perm filename BIGNUM.LSP[1,3] blob
sn#000155 filedate 1970-03-15 generic text, type T, neo UTF8
(SETQ IBASE (ADD1 9))
(DEFPROP BIGFNS
(NIL BIGINIT APNINIT FPRINT RPRINT TEN)
VALUE)
(DEFPROP BIGINIT
(LAMBDA NIL
(PROG NIL
(PUTSYM (VBASE (GET (QUOTE BASE) (QUOTE VALUE)))
NEGNUM
POSNUM
FIXNUM
FLONUM
(MINUSP (GET (QUOTE MINUSP) (QUOTE SUBR)))
(VNOPOI (GET (QUOTE *NOPOINT) (QUOTE VALUE))))))
EXPR)
(DEFPROP APNINIT
(LAMBDA NIL
(PROG NIL
(GETSYM SUBR BIGINI)
(BIGINI)
(REMPROP (QUOTE APNINIT) (QUOTE EXPR))
(REMPROP (QUOTE BIGINIT) (QUOTE EXPR))
(REMPROP (QUOTE BIGINI) (QUOTE SUBR))))
EXPR)
(DEFPROP FPRINT
(LAMBDA(R Q N)
(COND ((ZEROP N) (PRINC (QUOTE / )))
(T (PROG (Z) (SETQ Z (DIVIDE (TIMES R TEN) Q)) (PRINC (CAR Z)) (RETURN (FPRINT (CDR Z) Q (SUB1 N)))))))
EXPR)
(DEFPROP RPRINT
(LAMBDA (P Q N) (PROG (Z) (SETQ Z (DIVIDE P Q)) (PRIN1 (CAR Z)) (PRINC (QUOTE /.)) (FPRINT (CDR Z) Q N) N))
EXPR)
(DEFPROP TEN
(NIL . 1000000000)
VALUE)
(BIGINIT)